package com.kyrie.lib_sys.application.autorApplys.service;

import com.kyrie.lib_sys.common.entity.PageResult;
import com.kyrie.lib_sys.common.pojo.dto.AuthorDTO;
import com.kyrie.lib_sys.common.pojo.dto.AuthorPageQueryDTO;
import com.kyrie.lib_sys.common.pojo.entity.Author;

import java.util.List;

public interface AuthorService {

    /**
     * 添加作者信息
     * @param authorDTO
     * @return
     */
    Author insert(AuthorDTO authorDTO);


    /**
     * 查询作者信息
     * @param authorDTO
     * @return
     */
    Author queryAuthor(AuthorDTO authorDTO);

    /**
     * 根据ID查询作者
     * @param id
     * @return
     */
    AuthorDTO queryAuthorById(Long id);

    /**
     * 查询作者列表
     * @param authorPageQueryDTO
     * @return
     */
    PageResult queryList(AuthorPageQueryDTO authorPageQueryDTO);

    /**
     * 分页查询作者
     * @param authorPageQueryDTO
     * @return
     */
    PageResult queryPage(AuthorPageQueryDTO authorPageQueryDTO);

    /**
     * 条件查询作者
     * @param authorDTO
     * @return
     */
    AuthorDTO queryByCondition(AuthorDTO authorDTO);

    /**
     * 修改作者信息
     * @param authorDTO
     * @return
     */
    void update(AuthorDTO authorDTO);

    /**
     * 删除作者信息
     * @param id
     */
    void deleteById(Long id);

    /**
     * 批量删除作者信息
     * @param ids
     */
    void deleteBatch(List<Long> ids);

    /**
     * 批量插入作者信息
     * @param authorDTOS
     */
    void insertBatch(List<AuthorDTO> authorDTOS);
}
